package com.aier.admin.service;

import java.util.List;
import java.util.Map;

import com.aier.admin.entity.IcCard;



public interface IAdminAssignCardService {
	/**
	 * 查询未分配的卡
	 * @param icstate0 卡的状态:录入未激活
	 * @param icstate1 卡的状态:系统激活待分配
	 * @param page 当前页
	 * @param page_size 每页显示
	 * @return
	 */
    Map<String, Object> searchAssignCard(Short icstate0,Short icstate1,int page, int page_size);
    
    /**
	 * 查询分派给代理商的卡
	 * @param icstate10卡的状态:分派给代理商
	 * @param page 当前页
	 * @param page_size 每页显示
	 * @return
	 */
    Map<String, Object> searchAssignProxyCard(Short icstate10,Integer pid,int page, int page_size);
    
    
    
    /**
     * 为未分配的卡添加代理
     * @param card 
     * @param cid  
     * @return
     */
    int insertCard(Long cid,Integer pid);
    /**
     * 分配卡代理(更改卡状态)
     * @param name
     * @param icbody1
     * @param icbody2
     * @param pid
     * @return
     */
    int updateCardProxy(String name,String icbody1,String icbody2,Integer pid);
    /**
     * 查询icbody1-icbody2之间的未代理卡
     * @param name
     * @param icbody1
     * @param icbody2
     * @return
     */
    List<IcCard> searchCard(String name,String icbody1,String icbody2);
    
    /**
     * 查询已分配给代理商的卡
     */
    List<IcCard> searchProxyCard();
    /**
     * 查询已分配给学校的卡
     */
    List<IcCard> searchSchoolCard();
    
    
    
    /**
     * 回收代理商手中未分派的卡
     * @param name 卡前缀
     * @param icbody1 卡中部
     * @param icbody2 卡尾部
     * @param pid 代理商id
     * @return
     */
    int deleteAssignProxyCard(String name, String icbody1, String icbody2,
			Integer pid);
    
    /**
     * 查询成功回收的IC卡
     */
    List<IcCard> searchRecoverProxyCards(String name, String icbody1, String icbody2,
			Integer pid);
    /**
     * 查询出指定范围内指定代理商拥有的未分配的ic卡
     */
    List<IcCard> searchIcCards(String name, String icbody1, String icbody2,
			Integer pid);
    
    
    /**
     * 直接将卡分派给学校
     * @param sid
     * @param cardnum
     * @return
     */
    int insertCardSchool(Integer sid,String cardnum);
    
    /**
     * 直接将分派给学校的卡回收
     * @param cardnum
     * @return
     */
    int updateCardRecover(String cardnum);
    
}
